<?php
declare(strict_types=1);

namespace LowCode\UI;

use LowCode\Support\JsExp;
use LowCode\Traits\Props\HasColor;

/**
 * Svg图标组件
 * @method static static make(string|JsExp $icon) Svg图标组件
 */
class SvgIcon extends Node
{
    use HasColor;

    /**
     * @param string|JsExp $icon 图标名称 或者 图标网络路径
     */
    public function __construct(string|JsExp $icon)
    {
        parent::__construct();
        $this->icon($icon);
    }

    /**
     * 设置图标名称
     * @param string|JsExp $icon 图标名称 或者 图标网络路径
     * @return $this
     */
    public function icon(string|JsExp $icon): static
    {
        return $this->prop("icon",$icon);
    }

    /**
     * 设置图标大小
     * @param int|string|JsExp $size
     * @return $this
     */
    public function size(int|string|JsExp $size): static
    {
        return $this->prop("size", $size);
    }

    /**
     * 设置图标深度
     * @param int|string|JsExp $depth 1 | 2 | 3 | 4 | 5
     * @return $this
     */
    public function depth(int|string|JsExp $depth = 1): static
    {
        return $this->prop("depth", $depth);
    }
}
